﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Milo.Framework
{
    public interface IControl
    {
        bool Enabled { get; set; }
        bool Visible { get; set; }
        string Name { get; set; }
        IControl Parent { get; set; }
        /// <summary>
        /// Gets the model ID, to be passed back to the server, ie in the input name tag.
        /// </summary>
        /// <value>The model ID.</value>
        string ModelID { get; }
        /// <summary>
        /// Gets the client ID, that is the id which can be used in the clientside html for id's, javascript, etc.
        /// </summary>
        /// <value>The client ID.</value>
        string ClientID { get; }
        /// <summary>
        /// Gets the signature ID, that is, a signature for the property that we can use for extracting resource strings, etc.
        /// </summary>
        /// <value>The signature ID.</value>
        string SignatureID { get; }

        string GetModelIDPrefix();
        Type GetModelType();
    }
}
